//============================================================================
//Gios Pdf.NET - A library for exporting Pdf Documents in C#
//Copyright (C) 2005 Paolo Gios - www.paologios.com
//
//This library is free software; you can redistribute it and/or
//modify it under the terms of the GNU Lesser General Public
//License as published by the Free Software Foundation; either
//version 2.1 of the License, or (at your option) any later version.
//
//This library is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
//Lesser General Public License for more details.
//
//You should have received a copy of the GNU Lesser General Public
//License along with this library; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//=============================================================================
using System;
using System.Drawing;
using System.Collections;
namespace HH.WMS.Utils.Gios.Pdf
{
///
/// a Column of a PdfTable
///
public class PdfColumn : PdfCellRange
{
internal int index;
internal double Width;
private double compansatedWidth=-1;
internal double CompensatedWidth
{
get
{
if (this.compansatedWidth==-1)
{
double sum=0;
foreach (PdfColumn pc in this.owner.Columns)
{
sum+=pc.Width;
}
this.compansatedWidth=(this.owner.TableArea.width/sum)*this.Width;
}
return this.compansatedWidth;
}
set
{
this.compansatedWidth=value;
}
}
internal PdfColumn(PdfTable owner,int index)
{
this.owner=owner;
this.index=index;
this.startColumn=index;
this.endColumn=index;
this.startRow=0;
this.endRow=this.owner.rows-1;
}
///
/// sets the Relative Width of the Column. For example: if the relative widths of a 3 columns
/// table are 10,10,30; the columns will respectivelly sized as 20%,20%,60% of the table size.
///
///
public void SetWidth(int RelativeWidth)
{
if (RelativeWidth<=0) throw new Exception("RelativeWidth must be grater than zero.");
this.Width=RelativeWidth;
if (this.owner.header!=null) this.owner.header.Columns[this.index].SetWidth(RelativeWidth);
}
}
}